package com.yanfan.zutai.domain;

import com.yanfan.common.annotation.Excel;
import com.yanfan.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.Getter;

import java.util.Date;
import java.util.List;

/**
 * 设备实时数据对象 b_device_real_data
 *
 * @author ruoyi
 * @date 2022-05-27
 */
@Data
public class BDeviceRealData extends BaseEntity {
    private static final long serialVersionUID = 1L;

    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * guid唯一标识
     */
    private String guid;

    /**
     * 部门id串
     */
    private String deptIdStrs;

    /**
     * 上传时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date reportTime;

    /**
     * 设备编号
     */
    private String deviceImei;
    /**
     * 设备名称
     */
    private String deviceName;
    /**
     * 参数名称
     */
    @Excel(name = "名称")
    private String paramName;

    /**
     * 参数字段
     */
    private String paramField;

    /**
     * 参数值
     */
    private String paramValue;

    /**
     * 参数单位
     */
    @Excel(name = "参数单位")
    private String paramUnit;

    /**
     * 参数图标
     */
    @Excel(name = "参数图标")
    private String paramIcon;
    /**
     * 驱动名称
     */
    @Excel(name = "驱动名称")
    private String driveName;
    /**
     * 寄存器类型
     */
    @Excel(name = "寄存器类型")
    private Integer registerType;

    /**
     * 寄存器类型
     */
    @Excel(name = "寄存器地址")
    private String registerAddress;

    /**
     * 数据类型
     */
    @Excel(name = "数据类型")
    private Integer dataType;

    /**
     * 读写方式
     */
    @Excel(name = "读写方式")
    private Integer readWriteType;

    /**
     * 小数点位
     */
    @Excel(name = "小数点位")
    private Integer decimalPlaces;

    /**
     * 死区设置
     */
    @Excel(name = "死区设置")
    private Double deadbandSet;

    /**
     * 采集公式
     */
    @Excel(name = "采集公式")
    private String acquisitionFormula;

    /**
     * 写入公式
     */
    @Excel(name = "写入公式")
    private String writeFormula;

    /**
     * 写入上限
     */
    private Integer writeUp;

    /**
     * 写入下限
     */
    private Integer writeLow;

    /**
     * 变量id 用于绑定字段
     */
    @Excel(name = "变量id")
    private Integer sort;
    /**
     * 最小采集时间
     */
    private Integer minAcquisitionTime;

    /**
     * 报警间隔
     */
    private Integer comWaitingTime;
    /**
     * AI单位
     */
    private String aiUnit;

    /**
     * ai类型
     */
    private Integer aiType;

    /**
     * 脚本guid
     */
    private String scriptGuid;


    /**
     * 变量名称、寄存器地址查询
     */
    private String paramDoubleQuery;

    /*
    数据调试暂存数据
    * */
    private String paramValueZc;


    private List<BDeviceParameter> parameterList;

    // 是否查询映射表，默认查询
    private Boolean isQueryParam = true;

    // 多设备查询
    private List<String> imeiList;
    private String ztGuid;
    /**
     * dido设置
     */
    private Integer didoType;
    /*是否是dido*/
    private Boolean isDiDo;
    private Boolean isContro;
    private List<String> paramNameList;

}
